/***************************************************************
*  Copyright (c) 2007 by GroupMe! Team (www.groupme.net)
*  All rights reserved.
*
*  This file is part of the GroupMe! Project. Source code of 
*  this project is closed and redistribution of this code is
*  prohibited. 
*  
*  Contact: http://www.groupme.net
*
*  This copyright notice MUST APPEAR in all copies of the file!
***************************************************************/
package net.groupme.search.strategy.folkrank;

/**
 * created on 10 Jan 2008
 * 
 * This class provides some FolkRank settings that can be adjusted via property file.
 * 
 * @author Fabian Abel, <a href="mailto:abel@l3s.de">abel@l3s.de</a>
 * @author last edited by: $Author: fabian $
 * 
 * @version $Revision: 1.6 $ $Date: 2008-08-22 21:50:04 $
 */
public class FOLKRANK_SETTINGS {

	/** FolkRank will stop when the sumarized pairwise diferences between Vector_i-1 and Vector_i are lesser than EPSILON */
	public  static final double EPSILON = 1.0E-60;
	
	/** the influence of personalization vector (d = 0..1, with 1 = no influence, 0 = full influence)
	 *  useful value e.g. d=0.625 */
	public  static double D= 0.725;
	
	/** maximum number of iterations FolkRank should perform */
	public static final int MAX_ITERATIONS = 30;
	
	/** when inheriting group tags to resources this indicates to which extend the tag should effect the resource (typical value: 0.8, 0.2 performed best in WWW 08 paper) */
	public static double DAMPEN_FACTOR_OF_INHERIT_GROUPTAGS = 0.2;
	
	/** for weight between resources and artificial group tags */
	public static double GROUP_WEIGHT = 5.0; 
	
	/** more a debugging issue: sollen bei Artificial-Group-Tags die Owner einer Gruppe als "Tagger"
	 * gezaehlt werden (-> wenn ja, dann auf false setzen)? This is in general <code>false</code>.. 
	 */ 
	public static boolean JUST_A_CONNECTION_BETWEEN_ARTIFICIAL_TAG_AND_GROUP = false;
	
	/** for determining similarity between two artificial tags - Case: sim(TxGy, TxGy) */ 
	public static double SAME_TAG_SAME_GROUP_SCORE = 5.0;

	/** for determining similarity between two artificial tags - Case: sim(TxGy, TxGz) */
	public static final double SAME_TAG_DIFFERENT_GROUP_SCORE = 2.0;
	
	/** for determining similarity between two artificial tags - Case: sim(TxGy, TzGy) */
	public static final double DIFFERENT_TAG_SAME_GROUP_SCORE = 1.0;
	

}
